// 全局默认配置
axios.defaults.baseURL = 'http://www.itcbc.com:8000';
// 配置 toastr
toastr.options = {
    closeButton: true, // 显示 关闭按钮
    debug: false,
    positionClass: 'toast-top-center', // 提示框显示的位置
    // onclick: null,
    // showDuration: '300',
    // hideDuration: '1000',
    // timeOut: '5000',
    // extendedTimeOut: '1000',
    showEasing: 'swing',
    // hideEasing: 'linear',
    // showMethod: 'fadeIn',
    // hideMethod: 'fadeOut',
};

//进度条
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    // 当存储里存在token时  拦截器里的token属性等于token
    if (localStorage.getItem("token")) {
        config.headers.Authorization = localStorage.getItem("token");
    }

    NProgress.start();
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // select 下拉框后端给的数据结构不一样没有code这个属性 导致错误提示
    // 判断如果存在code才执行
    if (response.data.code && response.data.code !== 0) {
        toastr.error(response.data.message);
    }
    NProgress.done();
    // 对响应数据做点什么
    return response;
}, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    if (error.response.data.code) {
        toastr.error(error.response.data.message, "用户名或密码输入错误")
    }
    if (error.response.status === 401) {
        window.top.location.href = './login.html'
    }
    NProgress.done();

    // 对响应错误做点什么
    return Promise.reject(error);
});